package cn.iocoder.yudao.module.booking.controller.app.courseinfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Schema(description = "用户 APP - 课程信息新增/修改 Request VO")
@Data
public class AppCourseInfoSaveReqVO {

    @Schema(description = "课程标题", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "课程标题不能为空")
    private String title;

    @Schema(description = "课程描述", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "课程描述不能为空")
    private String description;

    @Schema(description = "课程开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "课程开始时间不能为空")
    private LocalDateTime startTime;

    @Schema(description = "课程结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "课程结束时间不能为空")
    private LocalDateTime endTime;

    @Schema(description = "上课人数", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "上课人数不能为空")
    private Long number;

    @Schema(description = "已预约人数", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "已预约人数不能为空")
    private Long availableNumber;

    @Schema(description = "上课地点", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "上课地点不能为空")
    private String place;

    @Schema(description = "教练编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "教练编号不能为空")
    private Long instructorId;

    @Schema(description = "教练名字", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "教练名字不能为空")
    private String instructorName;

}